//获取界面高度
function getTableHeight(height){
    let defaultHeight=0
    if(height){
        defaultHeight=height;
    }
    let tableHeight=document.getElementById('app').offsetHeight-defaultHeight+'px';
    return tableHeight;
}
//加法
function accAdd(arg1,arg2){
    if(!arg1){
        arg1='0';
    }
    if(!arg2){
        arg2='0';
    }
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    // return accDiv((accMul(arg1,m)+accMul(arg2,m)),m)
    return (arg1*m+arg2*m)/m
    }
//减法
function Subtr(arg1,arg2){
    if(!arg1){
        arg1='0';
    }
    if(!arg2){
        arg2='0';
    }
    var r1,r2,m,n;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2));
    //last modify by deeka
    //动态控制精度长度
    n=(r1>=r2)?r1:r2;
    return ((arg1*m-arg2*m)/m).toFixed(n);
}
//乘法
function accMul(arg1,arg2){
    if(!arg1){
        arg1='0';
    }
    if(!arg2){
        arg2='0';
    }
    var m=0,s1=arg1.toString(),s2=arg2.toString();
    try{m+=s1.split(".")[1].length}catch(e){}
    try{m+=s2.split(".")[1].length}catch(e){}
    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
//除法
function accDiv(arg1,arg2){
    if(!arg1){
        arg1='0';
    }
    if(!arg2){
        arg2='0';
    }
    var t1=0,t2=0,r1,r2;
    try{t1=arg1.toString().split(".")[1].length}catch(e){}
    try{t2=arg2.toString().split(".")[1].length}catch(e){}
    // with(Math){
    r1=Number(arg1.toString().replace(".",""))
    r2=Number(arg2.toString().replace(".",""))
    return accMul((r1/r2),Math.pow(10,t2-t1));
    // }
}

/**
 * @description: 转换成字符串日期
 * @param {*} //str: 日期，xxxx年xx月xx日
 * @param {*} //flag:显示的格式标志  三种：1.'datetime'  2.'date'   3.'time' 分别表示显示日期和时间、只显示日期、只显示时间,String;
 * @return {*}
 */
function fiFormatDate(str, flag) { 
    str = str.replace(/[^bai\d]/g,'/');
    var date = str ? new Date(str) : new Date();
    let y = date.getFullYear();  
    let m = date.getMonth() + 1;  
    m = m < 10 ? ('0' + m) : m;  
    let d = date.getDate();  
    d = d < 10 ? ('0' + d) : d;  
    let h = date.getHours();  
    let minute = date.getMinutes();  
    minute = minute < 10 ? ('0' + minute) : minute; 
    let second= date.getSeconds();  
    second = minute < 10 ? ('0' + second) : second;  
    switch(flag){
        case 'datetime': 
            // resultDate = y + '-' + m + '-' + d+' '+h+':'+minute+':'+ second;
            return `${y}-${m}-${d} ${h}:${minute}:${second}`;
        case 'date': 
            return `${y}-${m}-${d}`;
        case 'time': 
            return `${h}:${minute}:${second}`;
    }
}
export {accAdd,Subtr,accMul,accDiv,getTableHeight, fiFormatDate}